package com.java.thread.group.sync;

import java.util.concurrent.CompletableFuture;

/**
 * 单个处理;
 */
public class AsyncRequest {
    public static void main(String[] args) {
        // 定义请求的 URL
        String url = "https://blog.51cto.com/u_16175494/12092412";

        // 使用 CompletableFuture 进行异步请求(使用 CompletableFuture.supplyAsync 方法异步执行
        // sendRequest 方法，该方法会返回一个 CompletableFuture<String> 对象。)
        CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> sendRequest(url));

        // 处理异步请求的结果
        future.thenAccept(response -> {
            System.out.println("Received response: " + response);
        });

        // 主线程等待异步任务完成
        try {
            future.get();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static String sendRequest(String url) {
        try {
            // 模拟网络请求，这里可以替换为实际的网络请求代码
            Thread.sleep(1000); // 模拟 1 秒的网络延迟
            return "Response from API for " + url;
        } catch (InterruptedException e) {
            e.printStackTrace();
            return null;
        }
    }
}